約 4,130,299 件
https://w.atwiki.jp/ypcat/pages/29.html
Windows7を入れて一番最初に驚いた点ですがウインドウを移動中に画面の上に触れると勝手に最大化しました。 画面ぎりぎりまで使ってウインドウを配置したいので、とても使いにくかったので、少し調べてみたら、新機能らしいです。 コントロール パネル\コンピューターの簡単操作\コンピューターの簡単操作センター\マウスを使いやすくします に項目がありました。
https://w.atwiki.jp/abwiki/pages/645.html
ウインドウはGUIアプリケーションの基本部品です。 ウインドウを作るにはCreateWindow()等の関数で作ることができます。
https://w.atwiki.jp/stgbuilder/pages/125.html
<メインウインドウ> SB.EXE起動時に表示されるウインドウ。前回開いていたプロジェクトが自動的に読み込まれる。 SBD読み込み時に、バージョンチェックが行われる。(SB 0.99.05以降で有効) 1.ツールバーメニュー:ウインドウ上部のタイトルバー下に表示 ファイル操作、テストプレイの実行・停止、配布用データの作成、設定、ヘルプなどを開く。 ファイル: 新規作成:新規にプロジェクトファイルを作成。 開く:別のプロジェクトファイルを開く。 保存:現在のプロジェクトファイルに名前を付けて保存。 閉じる:現在のプロジェクトファイルを開く。 終了:SBを終了。 テストプレイ: 実行:テストプレイを実行。(実行時には再実行) 停止:テストプレイを停止。 配布用: ビルド 設定: ゲーム設定 エディタ設定 ヘルプ: ヘルプ:ヘルプを開く。 html.lzh<<ヘルプファイルをDLできます。 バージョン情報:現在のSBのバージョンを表示。 更新履歴 0.10-,更新履歴 0.20-,更新履歴 0.30-,更新履歴 0.40-,更新履歴 0.50- 更新履歴 0.60-,更新履歴 0.70-,更新履歴 0.80-,更新履歴 0.90- 更新履歴 0.99.01,更新履歴 0.99.11-,更新履歴 0.99.21-,更新履歴 0.99.31- 2.プロジェクトマネージャ:ウインドウ左側に表示 各種パーツデータが種類別に格納されており、ダブルクリックでパーツを編集するウインドウが開く。(異なるパーツは同時に複数を編集可能) 新規:パーツデータを新規に作成。 削除:パーツデータを削除。 ↑:パーツデータを1個上方へ移動。 ↓:パーツデータを1個下方へ移動。 複製(パーツデータを右クリック):パーツデータを複製して作成。 アイコンサイズ(プロジェクトマネージャのタイトルバーを右クリック):アイコンサイズの大・小を変更。 スプライト編集,効果音編集,BGM編集,プレイヤー編集,背景編集,ステージ編集,エフェクト編集 弾幕編集,スクリプト編集,キャラクタ編集,編隊編集,フォント編集,レイアウト編集,パス編集 3.カテゴリ:ウインドウ右側に表示 プロジェクトマネージャに表示するパーツのカテゴリを選択。 デフォルトでは「全て」のため、全パーツデータを表示。「全て」を外して、表示させたいカテゴリを選択。 全てOFF 0:全て,1:システム,2:予約,3:予約 ユーザー設定 →カテゴリ編集 4.メインメニュー:ウインドウ中央上部に表示 テストプレイ、ゲーム設定、配布用データの作成、プロジェクトの操作などを行う。 テストプレイ:テストプレイ ゲーム設定:ゲーム設定 配布ビルド:ビルド プロジェクトを開く:別のプロジェクトファイルを開く。 プロジェクトの保存:現在のプロジェクトファイルに名前を付けて保存。
https://w.atwiki.jp/nadebook/pages/112.html
【最大化ボタン有効変更】メンバ関数 フォームの右上にある最大化ボタン「□」を有効にしたり無効にしたりできます。 ユーザーにウインドウを最大化されたくない場合やデザインにこだわる場合などに使用します。 最大化ボタンが使えなくなっている。 動作の実行 (部品名)をオンに最大化ボタン有効変更。 (部品名)をオフに最大化ボタン有効変更。 設定できる値 オン(または1) オフ(または0) ***** サンプル ***** ボタン状態はオフ。 ボタンAとはボタン。 ボタンAをクリックした時は 母艦をボタン状態に最大化ボタン有効変更。 ボタン状態はNOT(ボタン状態)。 ***** ここまで *****
https://w.atwiki.jp/parepan/pages/110.html
画面の最大化ボタンの有効無効の設定は フォームを選択して、 プロパティ画面のレイアウトの「AutoSize」の設定 true 最大化を無効 false 最大化を有効 ----
https://w.atwiki.jp/isoroku_be/pages/77.html
情報 作者名:まっこう 引用元:なでしこプログラム掲示板「タブ型なでしこエディタ(印刷機能付き)」 概要 ウィンドウの最大化/最小化ボタンを無効にします。 解説 引数 HANDLE:対象ウィンドウのハンドル サンプルプログラム (母艦のハンドル)を窓ハンドル最大化ボタン無効。 (母艦のハンドル)を窓ハンドル最小化ボタン無効。 //本体 ●窓ハンドル最大化ボタン無効(HANDLEを|HANDLEの) モード=GetWindowLong(HANDLE,$FFFFFFF0) アイテムのハンドルを取得? モード=AND(モード,$FFFEFFFF) Dで最小化無効、Eで最大化無効、Cで両方無効 SetWindowLong(HANDLE,$FFFFFFF0,モード) 無効化実行 ●窓ハンドル最小化ボタン無効(HANDLEを|HANDLEの) モード=GetWindowLong(HANDLE,$FFFFFFF0) アイテムのハンドルを取得? モード=AND(モード,$FFFDFFFF) Dで最小化無効、Eで最大化無効、Cで両方無効 SetWindowLong(HANDLE,$FFFFFFF0,モード) 無効化実行 ●GetWindowLong(hWnd,nIndex)=DLL("user32.dll","DWORD GetWindowLongA(DWORD,int)") ●SetWindowLong(hWnd,nIndex,dwNewLong)=DLL("user32.dll","BOOL SetWindowLongA(DWORD,int,int)") 有効にするにはどうすればよいのでしょうか? -- YuuKi (2010-02-19 20 49 36) 質問掲示板で解決しました。 -- YuuKi (2010-02-21 10 35 40) 名前 コメント
https://w.atwiki.jp/opengl/pages/210.html
二つのエディットコントロールを使ってウインドウを分割したように 見せます。 この類の処理はSDKを使うとサイズ変更などの度に再描画が発生し チラついてしまいますのでGUIを自作するのが良いかもしれません。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_ERASE 102 #define ID_SHOW 103 #define ID_STATUS 104 #define IDC_EDIT1 105 #define IDC_EDIT2 106 menu.rc #include resource.h IDR_MENU1 MENU BEGIN POPUP File BEGIN MENUITEM Exit , ID_EXIT END POPUP ウインドウ BEGIN MENUITEM クライアント領域を消す , ID_ERASE MENUITEM クライアント領域を表示 , ID_SHOW END END main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, comctl32.lib ) #include GL/freeglut/freeglut.h #include resource.h #include commctrl.h //CreateStatusWindow()のために必要 //FreeGlutのウインドウプロシージャを置き換える為の変数 WNDPROC WndProc=NULL; //元のウィンドウプロシージャ HWND hWnd2=NULL; //ウィンドウハンドル HMENU hMenu=NULL; //メニュー HWND hStatusbar; // ステータスバーのハンドル HWND hEdit1; HWND hEdit2; int width = 155; // 分割ウインドウ(左)の幅 #define SPLIT_WIDTH 1 #define SPLIT_MIN 5 bool flag=false; bool flg=true; #define WIDTH 320 #define HEIGHT 240 //回転用 float anglex = 0.0f; //白 GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 }; int MaxMinPoint(LPARAM lParam,RECT rc){ POINTS pts; pts = MAKEPOINTS(lParam); width = pts.x; if(width SPLIT_MIN){ width = SPLIT_MIN; }else if(width (rc.right - rc.left - SPLIT_MIN -10)){ width = rc.right - rc.left - SPLIT_MIN -10; }else{ ; } return width; } //置き換えた後のプロシージャ LRESULT CALLBACK WndProc2(HWND hWnd , UINT msg , WPARAM wParam , LPARAM lParam){ RECT rc; static BOOL push = FALSE; switch( msg ){ case WM_SIZE if(flag){ MoveWindow(hEdit1, 0, 0, 0, 0, TRUE); MoveWindow(hEdit2, 0, 0, 0, 0, TRUE); SendMessage( hStatusbar, WM_SIZE, wParam, lParam ); }else{ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glutSwapBuffers(); MoveWindow(hEdit1, 0, 0, width - SPLIT_WIDTH, HIWORD(lParam), TRUE); MoveWindow(hEdit2, width + SPLIT_WIDTH, 0, LOWORD(lParam), HIWORD(lParam), TRUE); SendMessage( hStatusbar, WM_SIZE, wParam, lParam ); } return 0; case WM_LBUTTONDOWN // マウスの左ボタンが押されたとき // マウスキャプチャを開始する SetCapture(hWnd); SetCursor(LoadCursor(NULL, IDC_SIZEWE)); push = TRUE; // 左ボタンが押された return 0; case WM_LBUTTONUP // マウスの左ボタンが離されたとき GetWindowRect(hWnd, rc); // マウスカーソルの位置を取得して、終点として保存しておく width = MaxMinPoint(lParam, rc); push = FALSE; // 左ボタンが押されてない // マウスキャプチャを終了する ReleaseCapture(); SendMessage(hWnd, WM_SIZE, SIZE_RESTORED, ((rc.bottom-rc.top) 16) | (rc.right-rc.left)); MoveWindow(hStatusbar ,0,0,0,0,true); return 0; case WM_MOUSEMOVE // マウスカーソルが移動したとき if(push == TRUE){ GetWindowRect(hWnd, rc); // マウスカーソルの位置を取得して、終点として保存しておく width = MaxMinPoint(lParam, rc); SendMessage(hWnd, WM_SIZE, SIZE_RESTORED, ((rc.bottom-rc.top) 16) | (rc.right-rc.left)); }else if((width = (LOWORD(lParam) + SPLIT_WIDTH)) (width = (LOWORD(lParam) - SPLIT_WIDTH))){ if(!flag)SetCursor(LoadCursor(NULL, IDC_SIZEWE)); }else{ SetCursor(LoadCursor(NULL, IDC_ARROW)); } return 0; case WM_COMMAND switch (LOWORD(wParam)){ case ID_ERASE flag=true; return 0; case ID_SHOW flag=false; flg=true; GetWindowRect(hWnd, rc); SendMessage(hWnd, WM_SIZE, SIZE_RESTORED, ((rc.bottom-rc.top) 16) | (rc.right-rc.left)); MoveWindow(hStatusbar ,0,0,0,0,true); return 0; case ID_EXIT PostQuitMessage(0); } return 0; case WM_DESTROY exit(0); break; default if(WndProc){ return CallWindowProc(WndProc,hWnd , msg , wParam , lParam); }else{ return DefWindowProc(hWnd,msg,wParam,lParam); } } } //ウィンドウの検索 BOOL CALLBACK enumWindowsProc(HWND hWnd,LPARAM lParam){ HANDLE hModule=(HANDLE)GetWindowLong(hWnd,GWL_HINSTANCE); if(GetModuleHandle(NULL)==hModule){ wchar_t ClassName[256]; GetClassNameW(hWnd,ClassName,sizeof(ClassName)/sizeof(ClassName[0])); if(wcsncmp(ClassName,L FREEGLUT ,wcslen(ClassName))==0){ hWnd2=hWnd; return FALSE; } } return TRUE; } void display(void){ if(flag){ if(flg){ MoveWindow(hEdit1, 0, 0, 0, 0, TRUE); MoveWindow(hEdit2, 0, 0, 0, 0, TRUE); flg=false; } glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0, 0, WIDTH, HEIGHT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)WIDTH / (double)HEIGHT, 1.0, 1000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(150.0,150.0,-150.0, 0.0,0.0,0.0, 0.0,1.0,0.0); glMaterialfv(GL_FRONT, GL_DIFFUSE, white); //回転 glRotatef(anglex,1.0f,0.0f,0.0f);//X軸を回転 glutSolidSphere(40.0,16,16); glutSwapBuffers(); } } void idle(void){ anglex+=2.0f; Sleep(1); glutPostRedisplay(); } void Init(){ glClearColor(0.3f, 0.3f, 0.3f, 1.0f); glEnable(GL_DEPTH_TEST); //ワイヤーフレーム glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); } bool main(int argc, char *argv[]){ glutInitWindowPosition(100, 100); glutInitWindowSize(WIDTH, HEIGHT); glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( 分割ウインドウ ); //FreeGlutのウインドウハンドルとウインドウプロシージャを置き換える EnumWindows(enumWindowsProc,0); if(hWnd2){ WndProc=(WNDPROC)GetWindowLong(hWnd2,GWL_WNDPROC); SetWindowLong(hWnd2,GWL_WNDPROC,(LONG)WndProc2); }else{ return false; } //メニューを作成 hMenu=LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU1)); if(hMenu){ SetMenu(hWnd2,hMenu); }else{ return false; } // コモンコントロール関係の初期化 InitCommonControls(); // ステータスバーを作成 hStatusbar = CreateStatusWindowW(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP, L ステータスバー ,hWnd2,ID_STATUS); hEdit1 = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT( EDIT ), TEXT( ウインドウ1 ), WS_CHILD | WS_VISIBLE | ES_MULTILINE, 0, 0, 155, 240, hWnd2, (HMENU)IDC_EDIT1, (HINSTANCE)GetWindowLong(hWnd2, GWL_HINSTANCE), NULL); hEdit2 = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT( EDIT ), TEXT( ウインドウ2 ), WS_CHILD | WS_VISIBLE | ES_MULTILINE, 157, 0, 320, 240, hWnd2, (HMENU)IDC_EDIT2, (HINSTANCE)GetWindowLong(hWnd2, GWL_HINSTANCE), NULL); glutDisplayFunc(display); glutIdleFunc(idle); Init(); glutMainLoop(); return true; }
https://w.atwiki.jp/abwiki/pages/643.html
ウインドウハンドルとは、windousプログラミングの最重要項目である。 Windowsはウインドウを制御するために、一つ一つのウインドウに管理番号を割り当てる。 この番号がウインドウハンドルである。
https://w.atwiki.jp/univalent-ja/pages/74.html
ウインドウマネージャーとは、グラフィカルユーザーインターフェイスのウインドウシステムにおけるウインドウの配置や外観を制御するソフトウェアである。Xに特有のものであり、Waylandにおいては「コンポジタ」と呼ばれる。 概要種類 一覧公式リポジトリから導入可能なものスタック タイル 動的 AURやPPAから導入可能なものスタック タイル 動的 関連項目 概要 ウインドウマネージャーとは、アプリケーションを出力するウインドウ、ウインドウを操作するためのメニュー、アプリケーションを起動するためのアイコンから構成される。一部のウインドウマネージャーはデスクトップ環境の一部として開発される。 種類 スタック(フロート)型…ウインドウが机上の紙のように動き、それぞれ重ねられるもの。WindowsやMacなどもこの方式。 タイル型…ウインドウが重ならないように、タイルのように上下左右に並べるもの。 動的…上記2種を動的に切り替えられるもの。 一覧 公式リポジトリから導入可能なもの スタック Blackbox 軽快で簡素なウインドウマネージャー。ライブラリには依存しない。 http //blackboxwm.sourceforge.net/ || blackboxextra KWin KDE 4.0以降で採用されたKDE向けウインドウマネージャー。Waylandコンポジタとしても機能する。 https //techbase.kde.org/Projects/KWin || kwinextra Marco MATE標準。 https //github.com/mate-desktop/marco || marcoextra Openbox 自由度の高い「*box」実装。Blackboxから派生したが、現在はそのコードは含まれない。 なお、AlisではLXQt版のウインドウマネージャーとしても採用されている。 http //openbox.org/ || openboxextra タイル Bspwm ウインドウが二分木の葉のように表現される。 https //github.com/baskerville/bspwm || bspwmextra i3 「wmii」に着想を得て開発された。マルチモニターやツリーメタファーがある。 https //i3wm.org/ || i3groups 動的 AURやPPAから導入可能なもの スタック JWM メチャクチャ軽い。 https //joewing.net/projects/jwm/ || jwmAUR タイル 動的 関連項目 デスクトップ環境
https://w.atwiki.jp/htmlsakusei/pages/4.html
htmlの特徴 htmlを使うとこういうことができます。 種類 できること ドロップダウンリスト 決められた項目から選択できる リストボックス 同じ ほかにもいろいろあります。